/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ea977;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;

import jxl.*;
import jxl.read.biff.BiffException;

public class parseXLS {
    
    private static File gravaArquivoDeURL() {  
        String stringUrl = "http://www2.camara.gov.br/deputados/pesquisa/arquivos/arquivo-formato-excel-com-informacoes-dos-deputados-1";
        String pathLocal = "";
        try {  
          
            //Encapsula a URL num objeto java.net.URL  
            URL url = new URL(stringUrl);  
      
            //Queremos o arquivo local com o mesmo nome descrito na URL  
            //Lembrando que o URL.getPath() ira retornar a estrutura   
            //completa de diretorios e voce deve tratar esta String  
            //caso nao deseje preservar esta estrutura no seu disco local.  
            String nomeArquivoLocal = url.getPath();  
              
            //Cria streams de leitura (este metodo ja faz a conexao)...  
            InputStream is = url.openStream();  
      
            //... e de escrita.  
            FileOutputStream fos = new FileOutputStream(pathLocal+nomeArquivoLocal);  
      
            //Le e grava byte a byte. Voce pode (e deve) usar buffers para  
            //melhor performance (BufferedReader).  
            int umByte = 0;  
            while ((umByte = is.read()) != -1){  
                fos.write(umByte);  
            }  
      
            //Nao se esqueca de sempre fechar as streams apos seu uso!  
            is.close();  
            fos.close();  
      
            //apos criar o arquivo fisico, retorna referencia para o mesmo  
            return new File(pathLocal+nomeArquivoLocal);  
              
        } catch (Exception e) {  
            //Lembre-se de tratar bem suas excecoes, ou elas tambem lhe tratarão mal!  
            //Aqui so vamos mostrar o stack no stderr.  
            e.printStackTrace();  
        }  
             
        return null;  
    }

    private String[] ExtrairVetorExcel(int linha){
        Workbook workbook;
        try {
            workbook = Workbook.getWorkbook(new File("myfile.xls"));
            Sheet sheet = workbook.getSheet(0);
        
            Cell NOME = sheet.getCell(linha,0);
            Cell PARTIDO = sheet.getCell(linha,1);
            Cell UF = sheet.getCell(linha,2);
            Cell TELEFONE=sheet.getCell(linha,9);
            Cell EMAIL=sheet.getCell(linha, 13);

        
            String politico[] = {NOME.getContents(),PARTIDO.getContents(),
                UF.getContents(),TELEFONE.getContents(),EMAIL.getContents()};
            return politico;
        } catch (IOException ex) {
            Logger.getLogger(parseXLS.class.getName()).log(Level.SEVERE, null, ex);
        } catch (BiffException ex) {
             Logger.getLogger(parseXLS.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }
    public String[] listagemDeputado(String Partido, String Uf){
        String politicos[]=new String[512];
        int numPolitico=0;
        for(int i=1;i<=513;i++){
            String politico[]=ExtrairVetorExcel(i);
            if(Partido.equals(politico[1]) ||Partido.equals("Todos")){
                if(Uf.equals(politico[2])||Uf.equals("todos")){
                    politicos[numPolitico]=politico[0];
                    numPolitico++;
                }
            }
        }
        return politicos;
        

    }
}